Today's Question:  What does your personal desk look like?        GIVE A SHOUT

SEARCH KEYWORD -- CLIPBOARD SYNC



  Implement struct no copy in GoLang

There is some case where some of the struct in GoLang which is not meant to be copied. For example, sometimes a global configuration which should have only one version passed around the whole application and should not be copied and modified. In GoLang, there is no intuitive solution on preventing copying of struct. But there is still some way which can be leveraged to help prevent this while developing the code. The trick is to define some struct implementing sync.Locker interface and has this ...

   GO VET,NOCOPY,NO COPY     2020-09-04 22:24:58

  Get the 48×48 or 256×256 icon of a file on Windows

Getting the 16×16 and 32×32 icons on Windows is relatively easy and is often as simple as one call to ExtractIconEx. However, getting the extra large (48×48) and jumbo (256×256) icons introduced respectively by XP and Vista is slighly more complex. This is normally done by: Getting the file information, in particular the icon index, for the given file using SHGetFileInfoRetrieving the system image list where all the icons are storedCasting the image list to an IImageList interf...

   File icon,File extension,Association,Large icon,Windows     2012-03-23 09:35:17

  Deep Dive into Spin Locks in Golang

In concurrent programming, a Mutex is a commonly used synchronization mechanism to protect critical resources and prevent data races. However, in certain specific scenarios, especially when the lock-holding time is short and the number of threads is limited, a more lightweight lock known as a Spin Lock can provide higher performance. What is a Spin Lock A Spin Lock is a form of busy-wait lock. When a thread attempts to acquire a lock held by another thread, it continuously checks the lock's stat...

   SPINLOCK,MUTEX,GOLANG     2024-01-10 05:53:28

  Vim: revisited

I’ve had an off/on relationship with Vim for the past many years. Before, I never felt like we understood each other properly. Vim is almost useless without plugins and some essential settings in .vimrc, but fiddling with all the knobs and installing all the plugins that I thought I needed was a process that in the end stretched out from few hours to weeks, months even; and it the end it just caused frustration instead of making me a happier coder. Recently, I decided to give Vim ano...

   Linux,Editor,Vim,Setup,Quick guideline     2011-12-12 07:55:27

  An ex-Mozilla employee's view about Chrome

Chrome now becomes the most popular web browser on the planet because it provides excellent user experience. As a general user, we think it's fast and easy to use. How about those who develop web browsers? How do they think about Chrome? Abhinav Sharma ,an ex-Mozilla employee and now Facebook employee, shared his opinion about Chrome. Mozilla fights an uphill battle given Google's advertising budget and capacity to have some incredibly good engineers and designers work on Chrome. They also came ...

   Chrome,Mozilla,Firefox     2013-07-28 23:09:19

  Service discovery with etcd

In previous post, we have talked about etcd and its usage. This post we will cover how to implement server discovery with etcd. Service discovery is to solve one of the most commonly seen scenarios in distributed system where how to find the corresponding target service to talk to. In short, it is to find some server which one can talk to based on some service name. A complete service discovery system include below three key functions: Service registration: A service must register itself to so...

   ETCD,SERVICE DISCOVERY,DEMO,TUTORIAL     2021-03-08 05:36:29

  Top 10 Go Coding Traps and Tips

Go is currently the most common programming language in cloud development. Though I use it very much in my work, I am still repeating certain mistakes. This article is more a record of these errors, figuring out the causes and solutions so that people who read this article will save themselves time when coming across the same problems. Let’s cut through to the tips. Don’t rely on index var in the for loop The most common mistake we make is that we often create goroutine&nbs...

   TIPS,GOLANG,NIL INTERFACE     2021-07-03 23:45:51

  Do you have this kind of comments in your source code?

Writing runnable code is the essential skill of a programmer, writing understandable comment is also a skill a programmer should acquire. There is some famous saying that bad comment is worth than no comment. Usually your code will be maintained by other people, if you provide them some difficult to understand or misguided comments, this will be nightmare to them. While at some other time, programmers may put some funny comments in their codes which may make others laugh. Today we...

   COMMENT,HUMOR     2016-08-01 10:25:14

  How do Silicon Valley companies recruit

There are a lot of friends asking me about the basic flow of how Silicon Valley companies recruit engineers. As a candidate, I tried Facebook, Google, Yahoo, Oracle, and I received offer from all these companies. As an interviewer, I have interviewed no less than 300 people and I know about the process of recruitment. I write this article with the hope of inspiring people who want to go to Silicon Valley or who are preparing for interviews or who are in the design of the recruiting process...

   Facebook,Interview,Experience,Silicon Valley     2012-05-15 06:36:52

  CSS Selector for Web Scraping

Creating a web scraper is no easy task. This is because it requires precision to identify the specific data points that we intend to collect for the end goal we are working towards.  Whether we are looking to create a marketing content database or analyze market trends, the last thing we need from our scraper is for it to return a lot of unnecessary data that will not help our cause. To avoid the inconvenience of going through huge amounts of data to get what we requested, it is crucial to ...

   CSS,WEB DESIGN,SELECTOR     2023-02-20 07:32:53